package com.unisal.teste;

import static org.junit.Assert.*;

import org.junit.Test;

import com.unisal.java.Bebida;
import com.unisal.java.Chocolate;
import com.unisal.java.Descafeinado;
import com.unisal.java.EspecialDaCasa;
import com.unisal.java.Espresso;
import com.unisal.java.Leite;
import com.unisal.java.LeiteDeSoja;
import com.unisal.java.TamanhoBebida;
import com.unisal.java.TorradoEscuro;
import com.unisal.java.Whip;

public class TestaBebidasDecoradas {

	@Test
	public void testaDescafeinadoChocolate() {
		Bebida descafeinado;
		descafeinado = new Descafeinado(TamanhoBebida.GRANDE);
		descafeinado = new Chocolate(descafeinado);
		
		assertEquals(2.75, descafeinado.custo(),0.00001);
		assertEquals("Espresso Descafeinado, Chocolate", descafeinado.getDescricao());
	}

	@Test
	public void testaEspressoLeiteWhip() {
		Bebida espresso;
		espresso = new Espresso(TamanhoBebida.GRANDE);
		espresso = new Leite(espresso);
		espresso = new Whip(espresso);
		
		assertEquals(1.9, espresso.custo(),0.00001);
		assertEquals("Espresso comum, Leite, Whip", espresso.getDescricao());
	}
	@Test
	public void testaEspecialDaCasaLeiteSojaChocolateChocolateWhip() {
		Bebida especialDaCasa;
		especialDaCasa = new EspecialDaCasa(TamanhoBebida.PEQUENO);
		especialDaCasa = new LeiteDeSoja(especialDaCasa);
		especialDaCasa = new Chocolate(especialDaCasa);
		especialDaCasa = new Chocolate(especialDaCasa);
		especialDaCasa = new Whip(especialDaCasa);
		
		assertEquals(2.55, especialDaCasa.custo(),0.00001);
		assertEquals("Especial da Casa, Leite de Soja, Chocolate, Chocolate, Whip", especialDaCasa.getDescricao());
	}
	
	@Test
	public void testaTorradoEscuroLeiteSojaWhip() {
		Bebida torradoEscuro;
		torradoEscuro = new TorradoEscuro(TamanhoBebida.MEDIO);
		torradoEscuro = new LeiteDeSoja(torradoEscuro);
		torradoEscuro = new Whip(torradoEscuro);
		
		assertEquals(2.15, torradoEscuro.custo(),0.00001);
		assertEquals("Espresso Forte, Leite de Soja, Whip", torradoEscuro.getDescricao());
	}

}
